home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / Data.cab / _B4706DB133A64F76BCED04A2C34BA5A7 < prev    next >
Encoding:
Text File  |  2004-04-29  |  1.1 KB  |  73 lines

  1.  
  2. regc(0, "COMBINED_XFORM")
  3.  
  4. regc(4, "DIRECTIONAL_DIR_MS") // should be light
  5. regc(5, "CAMERA_POS_MS")
  6.  
  7. regc(12, "FOG_PARAMS")
  8.  
  9. regc(13, "TEXTURE2_XFORM")
  10.  
  11. vshader("
  12.  
  13. #define point     v0
  14. #define normal    v1
  15. #define tangent   v2
  16. #define tcoord    v3
  17.  
  18. #define xform     c0
  19.  
  20. #define ldir      c4
  21. #define cpos      c5
  22. #define fogp    c12
  23.  
  24. #include <fog.inc>
  25.  
  26.     vs_1_1
  27.  
  28.     dcl_position  point
  29.     dcl_normal    normal
  30.     dcl_tangent   tangent
  31.     dcl_texcoord  tcoord
  32.  
  33.  
  34.     def    c64, 0, 0, 0, 0
  35.  
  36.     ; light dir
  37.     mov    r0, ldir
  38.  
  39.     ; eye dir
  40.     sub    r1, cpos, point
  41.  
  42.  
  43.     ; calc tangent space basis, binormal = cross( normal, tangent )
  44.     mov r2, normal
  45.     mul r3, r2.zxyw, tangent.yzxw;
  46.     mad r3, r2.yzxw, tangent.zxyw, -r3
  47.  
  48.     ; transform light dir and eye dir into tanget space
  49.     dp3 oT1.x, tangent, r0
  50.     dp3 oT1.y, r3, r0
  51.     dp3 oT1.z, normal, r0
  52.  
  53.     dp3 oT2.x, tangent, r1
  54.     dp3 oT2.y, r3, r1
  55.     dp3 oT2.z, normal, r1
  56.  
  57.  
  58.     ; output texcoords for color and bump map
  59.     mov oT0, tcoord
  60.     m4x4 oPos, point, xform
  61.  
  62.     ;clouds
  63.     dp4        oT3.x, point, c13
  64.     dp4        oT3.y, point, c14
  65.  
  66.  
  67.     // fog
  68.     dp4    r0.x, point, c2
  69.     FOG(r0.x, fogp, r1, c64.x)
  70.  
  71. ")
  72.  
  73.